﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SundUnderviser.ModelLayer;
using SundUnderviser.ControlLayer;
using System.Windows.Forms.DataVisualization.Charting;


namespace SundUnderviser.GUILayer
{
    public partial class TemperaturForm : Form
    {   PatientControler ctrlPatient = new PatientControler();
        private Patient selectedPatient;
        private string[] tidsarray = {"00:00","00:30","01:00","01:30","02:00","02:30","03:00","03:30",
                                         "04:00","04:30","05:00","05:30","06:00", "06:30", "07:00","07:30",
                                         "08:00","08:30","09:00","09:30","10:00", "10:30", "11:00","11:30",
                                        "12:00","12:30","13:00","13:30","14:00", "14:30", "15:00","15:30",
                                        "16:00","16:30","17:00","17:30","18:00", "18:30", "19:00","19:30",
                                        "20:00","20:30","21:00","21:30","22:00", "22:30", "23:00","23:30"};
        public TemperaturForm(Patient patient)
        {
            InitializeComponent();
            selectedPatient = patient;
            labelAktuelPatient.Text = selectedPatient.Navn;
            // Set palette.
            this.chart1.Palette = ChartColorPalette.SeaGreen;

            // Set title.
            this.chart1.Titles.Add("Temperatur ");
            opdaterListe();
                
             
            
        }

        private void label4_Click(object sender, EventArgs e)
        {

        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void TemperaturForm_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            String dato = dateTimePicker1.Text.ToString();
            DateTime dato1 = new DateTime();
            dato1 = DateTime.Parse(dato);
            
          
            Console.WriteLine("Dato " + dato);
            int index = comboBox1.SelectedIndex;
            string tid = tidsarray[index];
            string blodtryk = "";
            try
            {
                int blod1 = Convert.ToInt32(textBoxBlod1.Text.ToString());
                int blod2 = Convert.ToInt32(textBoxBlod2.Text.ToString());
                blodtryk = blod1 + "/" + blod2;
            
            decimal temperatur = Convert.ToDecimal(textBoxTemperatur.Text.ToString());
            int puls = Convert.ToInt32(textBoxPuls.Text.ToString());
            string resp = textBoxReps.Text.ToString();
            int pnr = selectedPatient.Nr;
            string initialer = "tin";
            PatientControler ctrlPatient = new PatientControler();
            int rc = ctrlPatient.RegistrerTemperatur(pnr, dato1, tid, blodtryk, puls, temperatur, resp, initialer, selectedPatient.IndDato);
            if(rc == 1)
            {
                textBoxBlod1.Text = "";
                textBoxBlod2.Text = "";
                textBoxPuls.Text = "";
                textBoxTemperatur.Text = "";
                textBoxReps.Text = "";
                labelMeddelelse.Text = "";
                opdaterListe();
            }
            }
            catch (Exception e1)
            {
                labelMeddelelse.Text = "Blodtryk, puls og temperatur  skal være tal";
                

            }
              
        }

       
        private void loadChart(List<Temperatur> templist)
        {
            this.chart1.Series.Clear();
  
           
         
            // Add series.
            Series series = this.chart1.Series.Add((templist.ElementAt(0).Date).ToString());
            foreach(Temperatur tempObj in templist)
            {
             
                

                // Add point.
               series.Points.Add(Convert.ToDouble(tempObj.Temp));
            }

        }

        private void chart1_Click(object sender, EventArgs e)
        {

        }
        private void opdaterListe()
        {
            List<Temperatur> tempList = new List<Temperatur>();
            tempList = ctrlPatient.HentPatientsTemp(selectedPatient.Nr);
            listBox1.Items.Clear();
            if (tempList != null)
            {
                foreach (Temperatur tempObj in tempList)
                {
                    listBox1.Items.Add(Convert.ToString(tempObj.Date).Substring(0, 10) +
                        " " + tempObj.Tid
                        + " " + tempObj.Temp.ToString()
                        + " " + tempObj.Blodtryk);
                       

                }
                if (tempList.Count > 0)
                {
                    loadChart(tempList);
                }


            }
        }

      
        
    }
}
